package hang.kafka.producer;

import org.apache.kafka.clients.producer.ProducerInterceptor;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.clients.producer.RecordMetadata;

import java.util.Map;

/**
 * @author 航
 * @date 2024/04/14 12:33
 * 自定义拦截器
 **/
public class ValueInterceptorTest implements ProducerInterceptor<String, String> {
    @Override
    // 发送数据时会调用此方法.
    // 这是拦截器对数据进行的具体操作
    public ProducerRecord<String, String> onSend(ProducerRecord<String, String> record) {

        return new ProducerRecord<String, String>(record.topic(), record.key(), record.value() + record.value());
    }

    @Override
    // 发送数据完毕，服务器返回的相应，会调用此方法
    public void onAcknowledgement(RecordMetadata recordMetadata, Exception e) {

    }

    @Override
    // 生产者对象关闭时，会调用此方法
    public void close() {

    }

    @Override
    // 创建生产者对象时调用
    public void configure(Map<String, ?> map) {

    }
}
